import romAxios from "@rom/axios";
import { ElMessage } from "element-plus";
romAxios.initAxios({
	baseURL: "/api",
	timeout: 3000,
});
const httpcode = {
	// 暂未登录或TOKEN已经过期
	UNAUTHORIZED: 401,
	// 没有相关权限
	FORBIDDEN: 403,
	// 访问页面未找到
	NOT_FOUND: 404,
	// 服务器错误
	SERVER_ERROR: 9994,
	// 上传参数异常
	PARAMS_INVALID: 9995,
	// ContentType错误
	CONTENT_TYPE_ERR: 9996,
	// 功能尚未实现
	API_UN_IMPL: 9997,
	// 服务器繁忙
	SERVER_BUSY: 9998,
	// 操作失败
	FAIL: 9999,
	// 操作成功
	SUCCESS: 10000,
};
romAxios.addResponseInterceptor(
	(data) => {
		switch (data.code) {
			case httpcode.SUCCESS:
				return Promise.resolve(data);
			// 权限不足
			case httpcode.FORBIDDEN:
				ElMessage.error(data.message || "没有访问权限");
				return Promise.reject(data);
			// 登录状态失效
			case httpcode.UNAUTHORIZED:
				ElMessage.error(data.message || "登录状态已失效，请重新登录");
				return Promise.reject(data);
			// 访问页面不存在
			case httpcode.NOT_FOUND:
				ElMessage.error(data.message || "404访问页面不存在");
				return Promise.reject(data);
			// ContentType错误
			case httpcode.CONTENT_TYPE_ERR:
				ElMessage.error(data.message || "Content-Type错误");
				return Promise.reject(data);
			// 上传参数异常
			case httpcode.PARAMS_INVALID:
				ElMessage.error(data.message || "请求参数或请求头错误");
				return Promise.reject(data);
			default:
				ElMessage.error(data.message || "操作失败!!!");
				return Promise.reject(data);
		}
	},
	({ errMsg, response }) => {
		ElMessage.error(errMsg);
		console.error("错误的response：", response);
	},
);

export default romAxios;
